home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / game / think / AmiChess.lha / AmiChess / src / random.c < prev    next >
C/C++ Source or Header  |  2002-10-31  |  1KB  |  92 lines

  1. #include <stdio.h>
  2. #include "common.h"
  3.  
  4. unsigned int Rand32()
  5. {
  6. static unsigned int x[55]=  
  7. {
  8. 1410651636UL,
  9. 3012776752UL,
  10. 3497475623UL,
  11. 2892145026UL,
  12. 1571949714UL,
  13. 3253082284UL,
  14. 3489895018UL,
  15. 387949491UL,
  16. 2597396737UL,
  17. 1981903553UL,
  18. 3160251843UL,
  19. 129444464UL,
  20. 1851443344UL,
  21. 4156445905UL,
  22. 224604922UL,
  23. 1455067070UL,
  24. 3953493484UL,
  25. 1460937157UL,
  26. 2528362617UL,
  27. 317430674UL,
  28. 3229354360UL,
  29. 117491133UL,
  30. 832845075UL,
  31. 1961600170UL,
  32. 1321557429UL,
  33. 747750121UL,
  34. 545747446UL,
  35. 810476036UL,
  36. 503334515UL,
  37. 4088144633UL,
  38. 2824216555UL,
  39. 3738252341UL,
  40. 3493754131UL,
  41. 3672533954UL,
  42. 29494241UL,
  43. 1180928407UL,
  44. 4213624418UL,
  45. 33062851UL,
  46. 3221315737UL,
  47. 1145213552UL,
  48. 2957984897UL,
  49. 4078668503UL,
  50. 2262661702UL,
  51. 65478801UL,
  52. 2527208841UL,
  53. 1960622036UL,        
  54. 315685891UL,
  55. 1196037864UL,
  56. 804614524UL,
  57. 1421733266UL,
  58. 2017105031UL,
  59. 3882325900UL,
  60. 810735053UL,
  61. 384606609UL,
  62. 2393861397UL
  63. };
  64.  
  65. static int init=true;
  66. static unsigned int y[55];
  67. static int j,k;
  68. unsigned int ul;
  69.  
  70. if(init)
  71.     {
  72.     int i;
  73.     init=false;
  74.     for(i=0;i<55;i++) y[i]=x[i];
  75.     j=24-1;
  76.     k=55-1;
  77.     }
  78. ul=(y[k]+=y[j]);
  79. if(--j<0) j=55-1;
  80. if(--k<0) k=55-1;
  81. return ul;
  82. }
  83.  
  84. HashType Rand64()
  85. {
  86. HashType b;
  87. b=Rand32();
  88. b=b<<32;
  89. b|=Rand32();
  90. return b;
  91. }
  92.